package com.wicket.okrapp.integration.dto;

import com.wicket.okrapp.common.dto.BaseDto;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;

import lombok.Data;

/**
 * @desc ImplementToBeReportedTaskStandardDataAndTipsComRespDto
 * @使用场景
 */
@Data
public class ImplementToBeReportedTaskStandardDataAndTipsComRespDto
  extends BaseDto
  implements Serializable {

  /**
   * 汇报进度值元素
   */
  @ApiModelProperty("汇报进度值元素")
  private Long progressValueElement;

  /**
   * 实际值元素
   */
  @ApiModelProperty("汇报实际值元素")
  private Long actualValueElement;

  /**
   * 汇报预算元素
   */
  @ApiModelProperty("汇报预算元素")
  private Long budgetAmountElement;

  /**
   * 提交标准数据提示文案
   */
  @ApiModelProperty("提交标准数据提示文案")
  private String submitStandardDataTips;

  /**
   * 展示目标值
   */
  @ApiModelProperty("展示目标值")
  private Double showTargetValue;

  /**
   * 冗余单位
   */
  @ApiModelProperty("展示目标值单位")
  private String unit;

  /**
   * 评价模板商业参数
   */
  @ApiModelProperty("评价模板商业参数")
  private String schemeDataPara;

  /**
   * 冗余指标业务类型 NUMBER_GROWTH:数量增长型 NUMBER_DECLINE:数量降幅型 PERCENTAGE_GROWTH:百分比增长型 PERCENTAGE_DECLINE:百分比降幅型 PROGRESS:进度型 RATIO_GROWTH:比率增长型 RATIO_DECLINE:比率降幅型 SUBJECTIVE_QUALITATIVE:主观定性
   */
  @ApiModelProperty("冗余指标业务类型")
  private String targetValueType;

  /**
   * 冗余是否左侧比例型 TRUE:是 FALSE:否
   */
  @ApiModelProperty("冗余是否左侧比例型")
  private String isLeft;

  /**
   * 增降幅小数点规则
   */
  @ApiModelProperty("增降幅小数点规则")
  private String increasesDropDecimalPoint;

  /**
   * 小数最后一位规则 MALING:尾数抹零 ROUNDED:尾数四舍五入
   */
  @ApiModelProperty("小数最后一位规则")
  private String decimalDigitsLastRules;

  /**
   * 进度值（数值）
   */
  @ApiModelProperty("进度值（数值）")
  private Double progressValue;

  /**
   * 上一进度值结果
   */
  @ApiModelProperty("上一进度值结果")
  private Double parentProgressValue;

  /**
   * 进度值单位
   */
  @ApiModelProperty("进度值单位")
  private String progressValueUnit;

  /**
   * 参照进度值（数值）
   */
  @ApiModelProperty("参照进度值（数值）")
  private Double countProgressValue;

  /**
   * 参照进度值单位 TIMES:次 DOOR:门 PART:部 SET:套 INDIVIDUAL:个 YUAN:元 NNT:人 PIECE:篇 TERM:项 FEN:分 WAN_YUAN:万元 PERCENT:1111百分率 PORTION:份 %:%
   */
  @ApiModelProperty("参照进度值单位")
  private String countProgressValueUnit;

  /**
   * 实际值（数值）
   */
  @ApiModelProperty("实际值（数值）")
  private Double actualValue;

  /**
   * 上一实际值结果
   */
  @ApiModelProperty("上一实际值结果")
  private Double parentActualValue;

  /**
   * 实际值单位 TIMES:次 DOOR:门 PART:部 SET:套 INDIVIDUAL:个 YUAN:元 NNT:人 PIECE:篇 TERM:项 FEN:分 WAN_YUAN:万元 PERCENT:1111百分率 PORTION:份 %:%
   */
  @ApiModelProperty("实际值单位")
  private String actualValueUnit;

  /**
   * 参照实际值（数值）
   */
  @ApiModelProperty("参照实际值（数值）")
  private Double countActualValue;

  /**
   * 参照实际值单位 TIMES:次 DOOR:门 PART:部 SET:套 INDIVIDUAL:个 YUAN:元 NNT:人 PIECE:篇 TERM:项 FEN:分 WAN_YUAN:万元 PERCENT:1111百分率 PORTION:份 %:%
   */
  @ApiModelProperty("参照实际值单位")
  private String countActualValueUnit;

  /**
   * 预算支出金额
   */
  @ApiModelProperty("预算支出金额")
  private Double budgetDisburse;

  /**
   * 上一预算支出金额
   */
  @ApiModelProperty("上一预算支出金额")
  private String parentBudgetDisburse;

  /**
   * 累计支出资金
   */
  @ApiModelProperty("累计支出资金")
  private Double cumulativeFundsExpend;

  /**
   * 资金单位
   */
  @ApiModelProperty("资金单位")
  private String cashAccountUnit;

  @ApiModelProperty("财务科目列表")
  private List<AccountSubjectDto> accountSubjectList = new ArrayList<>();

}
